import akshare as ak
import time
import pandas as pd

# 你想要监控的股票代码列表
stock_codes = ['000001', '600519', '000858']

# 模拟交易时间内的循环获取（例如，运行10分钟）
start_time = time.time()
timeout = 10 * 60 # 运行10分钟

print("开始监控实时价格...")
while (time.time() - start_time) < timeout:
    try:
        # 1. 获取所有股票的快照
        all_stocks_df = ak.stock_zh_a_spot()
        
        # 2. 筛选出我们关心的股票
        target_stocks = all_stocks_df[all_stocks_df['代码'].isin(stock_codes)]
        
        # 3. 打印关键信息
        current_time = time.strftime("%H:%M:%S")
        print(f"\n=== 更新时间：{current_time} ===")
        # 只显示需要的列
        display_df = target_stocks[['代码', '名称', '最新价', '涨跌幅', '成交量']]
        print(display_df.to_string(index=False)) # 不显示行索引
        
        # 4. ！！！重要：休眠一段时间，比如10秒，避免请求过快 ！！！
        time.sleep(10)
        
    except Exception as e:
        print(f"获取数据时出错: {e}")
        # 出错后等待更长时间再重试
        time.sleep(30)

print("监控结束。")